/*
  1. typeof
    问题：不能严格区分出 object array null，因为都是返回 object。其他没问题

      target && typeof target === 'object' --> target 一定是 object 或 array

  2. A instanceof B
    简单理解: A 是否是 B 实例
    真正理解: A 的隐式原型是否在 B 显示原型上

      promise instanceof Promise

  3. Object.prototype.toString.call(target).slice(8, -1)

  4. A === B 检测数据类型和值是否完全相等 

  5. Array.isArray() 检测数组
*/

console.log([] instanceof Object); // true
console.log({} instanceof Array); // false
console.log(Object instanceof Object); // true
console.log(Array instanceof Array); // false
console.log(Function instanceof Function); // true
